stReconstructParam = MV_RECONSTRUCT_IMAGE_PARAM()
if stOutFrame.stFrameInfo.enPixelType in HB_format_list:
stParam = MVCC_INTVALUE()
memset(byref(stParam), 0, sizeof(stParam))
ret = cam.MV_CC_GetIntValue("PayloadSize", stParam)
if 0 != ret:
raise Exception("Get PayloadSize fail! ret[0x%x]" % ret)
nPayloadSize = stParam.nCurValue
stDecodeParam.pSrcBuf = stOutFrame.pBufAddr
stDecodeParam.nSrcLen = stOutFrame.stFrameInfo.nFrameLen
stDecodeParam.pDstBuf = (c_ubyte * nPayloadSize)()
stDecodeParam.nDstBufSize = nPayloadSize
ret = cam.MV_CC_HBDecode(stDecodeParam)
if ret != 0:
raise Exception("HB Decode fail! ret[0x%x]" % ret)
else:
stReconstructParam.nWidth = stDecodeParam.nWidth
stReconstructParam.nHeight = stDecodeParam.nHeight
stReconstructParam.enPixelType = stDecodeParam.enDstPixelType
stReconstructParam.pSrcData = stDecodeParam.pDstBuf
stReconstructParam.nSrcDataLen = stDecodeParam.nDstBufLen
else:
stReconstructParam.nWidth = stOutFrame.stFrameInfo.nWidth
stReconstructParam.nHeight = stOutFrame.stFrameInfo.nHeight
stReconstructParam.enPixelType = stOutFrame.stFrameInfo.enPixelType
stReconstructParam.pSrcData = stOutFrame.pBufAddr
stReconstructParam.nSrcDataLen = stOutFrame.stFrameInfo.nFrameLen
stReconstructParam.nExposureNum = exposure_num
stReconstructParam.enReconstructMethod = MV_SPLIT_BY_LINE
dst_buffer_len = int(stReconstructParam.nSrcDataLen/exposure_num)
for i in range(exposure_num):
dst_buffer = (c_ubyte * dst_buffer_len)()
dst_buffer_list.append(dst_buffer)
stReconstructParam.stDstBufList[i].pBuf = dst_buffer_list[i]
stReconstructParam.stDstBufList[i].nBufSize = dst_buffer_len
ret = cam.MV_CC_ReconstructImage(stReconstructParam)
if ret != 0:
raise Exception("MV_CC_ReconstructImage fail! ret[0x%x]" % ret)
else:
print("Reconstruct image success")